Networks become increasingly more complicated as they expand in size and much more difficult to manage and control. In a traditional network considerable IT resources are required to implement process such as configuration and provisioning. Traditionally these tasks were manually implemented by a network administrator. The SDN approach automated these processes via software.
An SDN controller comprises a repository of control and policy instructions for the network. The SDN controller has an end-to-end view of the entire network, and information of all network paths and device capabilities. As a consequence, the SDN controller may calculate paths based on both source and destination addresses; use different network paths for different traffic types and react to the condition of the network changes. While a centralised control approach allows a network to be managed more efficiently that the conventional approach, delays may occur in view of huge volume of routing decisions that need to be centrally processed. Furthermore, the centralised control approach fails to address the individual granularity of setting specific policies for end users across millions of devices, as to how their devices should be controlled. The centralised approach fails to take account of how to scale the centrally operated SDN controller which controls very large numbers of distributed users with granular preferences and very large numbers of end devices. These limitations are inherent in the fully centrallised approach and are specifically undesirable when SDN control is being used to manage millions of devices connected residential internet subscribers or businesses.
In addition this centralised approach fails to take into consideration the full scale and use of the analytics that are possible to be gathered. This approach fails to make use of the valuable historical reference capabilities of this data and its ability to be used to drive pro-active network management and control, to drive security applications, to compute infrastructure planning applications or to create automatic fault resolution.
There is therefore a need for a method of controlling a software defined network (SDN), and an SDN controller which addresses at least some of the drawbacks of the prior art.